<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <!-- 熟练掌握 -->
      <h2>具名插槽</h2>
      <!-- 调用子组件的时候，传入多个元素或者组件，要在子组件的不同位置渲染 -->
      <child>
        <!-- <span>🍎</span>
        <span>🍌</span> -->

        <!-- 需要给要插入的内容包上template标签，加上v-slot指令，冒号后面跟插槽名称 -->
        <!-- v-slot也可以缩写，缩写成# -->
        <span>456</span>
        <template v-slot:before>
          <span>🍎</span>
        </template>
        <template #after>
          <span>🍌</span>
        </template>

        <span>789</span>
      </child>
    </div>

    <script src="./lib/Vue3.js"></script>
    <script>
      const { createApp } = Vue;

      const Child = {
        // 给每一个slot标签加上name属性
        template: `
          <div> <slot name="before"></slot> - child子组件 - <slot name="after"></slot> - <slot></slot>  </div>
        `,
      };

      createApp({
        data() {
          return {};
        },
        components: {
          Child,
        },
      }).mount("#app");
    </script>
  </body>
</html>
